package com.fsds.crem.core.generic;

import java.util.List;

/**
 * 所有自定义Service的顶级接口,封装常用的增删查改操作.
 * 
 * <pre>
 * 历史记录：
 * 2016-2-26 Dean
 * 	新建文件
 * </pre>
 * 
 * @author 
 * <pre>
 * SD
 * 
 * PG
 * 	admin
 * UT
 * 
 * MA
 * </pre>
 * @version 1.0
 *
 * <p/> 
 *
 * @param <Model> 代表数据库中的表 映射的Java对象类型
 * @param <PK> 代表对象的主键类型
 */
public interface GenericService<Model, PK> {

	/**
	 * 插入对象
	 * 
	 * @param model 对象
	 */
	public int create(Model model);

	/**
	 * 更新对象
	 * 
	 * @param model 对象
	 */
	public int update(Model model);

	/**
	 * 通过主键, 删除对象
	 * 
	 * @param id 主键
	 */
	public int delete(PK id);

	/**
	 * 通过主键, 查询对象
	 * 
	 * @param id 主键
	 * @return model 对象
	 */
	public Model getById(PK id);

	/**
	 * 查询多个对象
	 * 
	 * @return 对象集合
	 */
	public List<Model> findAll();
}
